Before graphical user interface (GUI) environments existed, programs operated in a text-based mode. For example, the first versions of the well-known WORDPERFECT word processor did not provide the pull-down menus and cursor selection features which are taken for granted today. To edit and otherwise modify the contents of a document, users had to learn a variety of combinations of keystrokes. For example, "bolding" certain characters in a document required learning and entering the particular sequence of keystrokes necessary to carry out that function. Similarly, editing text, such as deleting the text between the current location of the cursor and the end of the line, required learning and entering a different sequence of keystrokes. Quickly scrolling through the document in either a forward or backward direction required knowledge of yet another sequence of keystrokes.
GUI environments became very popular because of the ease with which they allow users to interact with a computer. Users can intuitively move a mouse pointer and click on a field on a screen instead of entering a series of keystrokes which bears no obvious relationship to the desired function. Moreover, a GUI allows programs to provide common elements, or interfaces, which are uniform across applications, generating a similar "look and feel" across all programs which run in a particular GUI environment. For example, in the MICROSOFT WINDOWS GUI environment, practically every program offers the same, uniform interface for opening a file, whether the program is a word processor, a spread sheet, or a tax program. Similarly, all programs offer a uniform mechanism for obtaining help information. Such uniformity and commonality across programs in a GUI environment lowers training expenses and improves initial productivity, two very important considerations for businesses.
While GUI environments have eliminated the need to learn keystrokes in many situations, the use of a mouse pointer has its downside as well. Such point-and-click operations with a mouse pointer invariably take much longer to perform than the corresponding keystrokes which they replace. Moving an operator's hand from a keyboard to a mouse drastically reduces the data entry throughput of the operator. In a high productivity data entry environment, production quotas would be seriously impacted if the operator must move a hand away from the keyboard and use a mouse instead of pressing one or more keys. Thus, while learning the appropriate keystrokes may take some time, once they are learned, using a mouse pointer is frequently a step backwards, and results in less productivity rather than more. Recognizing this fact, software developers typically implement software functionality not only in a graphical, point-and-click manner, but also through a series of keystrokes.
World Wide Web (Web) browsers have become very popular software applications. Web browsers download HTML pages (or "documents") from a server and display the contents of the HTML pages on a display screen. Browsers have been written to execute on the most popular computer platforms, and thus provide a cross-platform mechanism for accessing electronic data. This cross-platform capability has made HTML and browsers very popular application platforms.
Because of HTML's cross-platform features, many software applications are being rewritten to operate in the HTML/browser computing paradigm. Because of the flexibility of the HTML language, the rewritten application can often look nearly identical to the previous non-HTML version of the application. Such similarity is frequently desirable to eliminate what would otherwise require extensive retraining of operators. For example, there are many systems in use today which utilize mainframe terminals, such as an IBM 3270 terminal, to interact with an IBM mainframe computer application. Such terminals are not graphical devices, and provide a text-based interface. Such mainframe applications can be intercepted, or "front-ended," to provide the same functionality with the same text-based "look and feel" on a personal computer using a browser. With further customization to the "front-end" software, a more modem GUI-style "look and feel" can often be added to such applications, without making any changes to the original application software on the mainframe.
The disadvantage of the HTML/browser paradigm is that browsers currently provide only limited keyboard functionality. For example, most conventional keyboards contain a row of keys referred to as function keys. In traditional computing environments, function keys are used to initiate a particular action by the computer application. In many computer applications, function keys are used extensively. Unfortunately, browser software does not implement function key functionality, nor does HTML provide any special features by which an application can receive function key keystrokes. In other words, pressing a function key when a browser has the keyboard focus will not cause anything to happen, unless the HTML page somehow intercepts the key press, and acts accordingly. To compensate for the missing function key functionality, the HTML document typically provides an on-screen display of a plurality of buttons which can be selected by a mouse pointer. Each button is associated with a particular keyboard function key, and the association is made obvious by labeling the function keys with text such as "F1". Upon activation of one of the buttons with a mouse pointer, the software application is notified, which can then provide the functionality typically provided by pressing that respective keyboard function key. The problem with this solution is that operator throughput declines dramatically each time an operator moves their hand from the keyboard to the mouse.
Browsers also fail to provide common editing functions that are available in traditional text-based computer applications. For example, practically all text-based applications offer a text insert mode and a text over type mode for adding text to an existing string of characters. Browsers typically do not provide an over type mode. To replace a character, one must first highlight the character by dragging the mouse pointer over the character, or by activating a sequence of characters to highlight the character. Most text-based computer applications also provide data editing functionality through control-key sequences. For example, most such applications allow the use of the control key in conjunction with the End key to erase the characters from the cursor location to the end of field. Such editing functions are also not available in Web browsers.
Certain mainframe applications use the location of the cursor to make decisions. For example, a mainframe text editor may use the cursor location to determine where to split the screen upon a split-screen request from a user. Web browsers fail to provide a mechanism for determining the precise cursor location. This can prevent a mainframe application from being ported to an HTML/browser environment or from providing identical functionality as the previous version. The lack of such information further diminishes the effectiveness of the Web browser environment in providing traditional computer application functionality.
Mechanisms exist for enhancing HTML/browser functionality. Microsoft Corp. offers component technology referred to as "ActiveX" that operates as a "plug-in" to the MICROSOFT EXPLORER Web browser. ActiveX however, is a proprietary technology and currently does not execute in the most popular Web browser, NAVIGATOR, offered by Netscape Communications. Moreover, ActiveX extensions are widely regarded as a security exposure due to the way in which they interact with the client computer's operating system.
The JavaScript scripting language is another mechanism for enhancing the functionality of an HTML page. JavaScript instructions can be embedded in an HTML document to perform a variety of different tasks. However, JavaScript does not have access to keyboard keystrokes, and thus cannot be used by itself to provide enhanced keyboard functionality. Java applets are another mechanism by which an HTML document can be enhanced. An applet is an executable code file that is downloaded and interpreted by the browser along with the HTML document. An applet "owns" only a particular subset of the HTML page, and has no control or interaction with page locations that it does not "own."
It is apparent that a method and system which enhance the functionality currently available in HTML documents or conventional Web browsers, including the ability to react to actual keyboard function keys, perform enhanced editing capabilities, and determine cursor location information, would be highly desirable.